/**
 * Created by zhang on 2017/6/25.
 */


/*
 //读取xml文件
 */
function loadXmlFile(xmlFile) {
    var xmlDom = null;
    if (window.ActiveXObject) {
        xmlDom = new ActiveXObject("Microsoft.XMLDOM");
        xmlDom.async = false;
        xmlDom.load(xmlFile) || xmlDom.loadXML(xmlFile);//如果用的是XML字符串//如果用的是xml文件
    } else if (document.implementation && document.implementation.createDocument) {
        var xmlhttp = new window.XMLHttpRequest();
        xmlhttp.open("GET", xmlFile, false);
        xmlhttp.send(null);
        // xmlDom = xmlhttp.responseXML;
        xmlDom = xmlhttp.responseXML;
    } else {
        xmlDom = null;
    }
    return xmlDom;
}

// var file = loadXmlFile("Area.xml");
// console.log(file);
// console.log("-----------------");


function createXMLHTTPRequest() {
    //1.创建XMLHttpRequest对象
    //这是XMLHttpReuquest对象无部使用中最复杂的一步
    //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
    var xmlHttpRequest;
    if (window.XMLHttpRequest) {
        //针对FireFox，Mozillar，Opera，Safari，IE7，IE8
        xmlHttpRequest = new XMLHttpRequest();
        //针对某些特定版本的mozillar浏览器的BUG进行修正
        if (xmlHttpRequest.overrideMimeType) {
            xmlHttpRequest.overrideMimeType("text/xml");
        }
    } else if (window.ActiveXObject) {
        //针对IE6，IE5.5，IE5
        //两个可以用于创建XMLHTTPRequest对象的控件名称，保存在一个js的数组中
        //排在前面的版本较新
        var activexName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
        for (var i = 0; i < activexName.length; i++) {
            try {
                //取出一个控件名进行创建，如果创建成功就终止循环
                //如果创建失败，回抛出异常，然后可以继续循环，继续尝试创建
                xmlHttpRequest = new ActiveXObject(activexName[i]);
                if (xmlHttpRequest) {
                    break;
                }
            } catch (e) {
            }
        }
    }
    return xmlHttpRequest;
}

function get(url, data) {
    var req = this.createXMLHTTPRequest();
    if (req) {
        req.open("GET", url + "?" + data, true);
        // jQuery 发出 ajax 请求时，会在请求头部添加一个名为 X-Requested-With 的信息，
        // 信息内容为：XMLHttpRequest
        // 在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 来获取。
        // （注意：中划线换成了下划线，不区分大小写）
        // 使用原生 JavaScript 发出 ajax 请求时，给头部添加信息，
        req.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                if (req.status == 200) {
                    console.log(req);
                    console.log(JSON.parse(req.responseText).status);
                    console.log(JSON.parse(req.responseText).name)
                } else {
                    // alert("error");
                }
            }
        };
        req.send(null);
    }
}

function post(url, data) {
    var req = createXMLHTTPRequest();
    if (req) {
        req.open("POST", url, true);
        req.setRequestHeader("X-Requested-With", "XMLHttpRequest");
        req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8;");
        req.send(data);
        req.onreadystatechange = function () {
            if (req.readyState == 4) {
                if (req.status == 200) {
                    console.log(JSON.parse(req.responseText).name)
                } else {
                    alert("error");
                }
            }
        }
    }
}
ajax = {
    createXMLHTTPRequest: function () {
        //1.创建XMLHttpRequest对象
        //这是XMLHttpReuquest对象无部使用中最复杂的一步
        //需要针对IE和其他类型的浏览器建立这个对象的不同方式写不同的代码
        var xmlHttpRequest;
        if (window.XMLHttpRequest) {
            //针对FireFox，Mozillar，Opera，Safari，IE7，IE8
            xmlHttpRequest = new XMLHttpRequest();
            //针对某些特定版本的mozillar浏览器的BUG进行修正
            if (xmlHttpRequest.overrideMimeType) {
                xmlHttpRequest.overrideMimeType("text/xml");
            }
        } else if (window.ActiveXObject) {
            //针对IE6，IE5.5，IE5
            //两个可以用于创建XMLHTTPRequest对象的控件名称，保存在一个js的数组中
            //排在前面的版本较新
            var activexName = ["MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
            for (var i = 0; i < activexName.length; i++) {
                try {
                    //取出一个控件名进行创建，如果创建成功就终止循环
                    //如果创建失败，回抛出异常，然后可以继续循环，继续尝试创建
                    xmlHttpRequest = new ActiveXObject(activexName[i]);
                    if (xmlHttpRequest) {
                        break;
                    }
                } catch (e) {
                }
            }
        }
        return xmlHttpRequest;
    },
    post: function (url, data, fn) {
        var req = createXMLHTTPRequest();
        if (req) {
            req.open("POST", url, true);
            req.setRequestHeader("X-Requested-With", "XMLHttpRequest");
            req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8;");
            req.send(this.postData(data));
            req.onreadystatechange = function () {
                if (req.readyState == 4) {
                    if (req.status == 200) {
                        console.log(req);
                        fn(JSON.parse(req.responseText))
                    } else {
                        fn(JSON.parse(req.responseText))
                    }
                }
            }
        }
    },
    get: function (url, data, fn) {
        var req = this.createXMLHTTPRequest();
        if (req) {
            req.open("GET", url + "?" + data, true);
            // jQuery 发出 ajax 请求时，会在请求头部添加一个名为 X-Requested-With 的信息，
            // 信息内容为：XMLHttpRequest
            // 在后端可以使用 $_SERVER["HTTP_X_REQUESTED_WITH"] 来获取。
            // （注意：中划线换成了下划线，不区分大小写）
            // 使用原生 JavaScript 发出 ajax 请求时，给头部添加信息，
            req.setRequestHeader("X-Requested-With", "XMLHttpRequest");
            req.onreadystatechange = function () {
                if (req.readyState == 4) {
                    if (req.status == 200) {
                        fn(JSON.parse(req.responseText))
                    } else {
                        fn(JSON.parse(req.responseText))
                    }
                }
            };
            req.send(null);
        }
    },
    postData:function (obj) {
        var str = "";
        for(var prop in obj){
            str += prop + "=" + obj[prop] + "&"
        }
        return str;
    }
};
